/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Ingresos;
import Entidades.Semestre;
import Controladores.SemestreJpaController;
import Controladores.exceptions.IllegalOrphanException;
import Controladores.exceptions.NonexistentEntityException;
import Entidades.Seccion;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManagerFactory;
import Usuarios.conexion;
import java.util.Date;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
/**
 *
 * @author aVictor Jose Betancohurt 
 */
public class ISemestre 
{
    public ISemestre()
    {
    }
    //procedimiento guardar en la creacion de la tabla Semestre
    public void guardar(int sem,Date año)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        Semestre semestre = new Semestre();
        SemestreJpaController controlador = new SemestreJpaController (emf);
        semestre.setAnulado(false);
        semestre.setAño(año);
        semestre.setSemestre((short)sem);
        controlador.create(semestre);
    }
    public void addProfessor(String id) {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        em.createNativeQuery("INSERT INTO emp (EMP_ID, name) " +
        "       VALUES(?, 'asdf')")
      .setParameter(1, id)
      .executeUpdate();
    }
    //procedimiento modificar lo modifica a traves del id y guarda todo
    public void modificar(Semestre semestre)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        SemestreJpaController controlador = new SemestreJpaController (emf);
        try {
            controlador.edit(semestre);
        } catch (IllegalOrphanException ex) {
            Logger.getLogger(ISemestre.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(ISemestre.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(ISemestre.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    //funcion buscar por id que regresa Semestre para poder ser modificado
    public Semestre buscarId(int id)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        SemestreJpaController controlador = new SemestreJpaController (emf);
        return controlador.findSemestre(id);
    }
    public List<Semestre> mostrarTodo()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        SemestreJpaController controlador = new SemestreJpaController (emf);
        return controlador.findSemestreEntities();
    }
    
    public String toString(int id)
    {
        Semestre semestre = this.buscarId(id);
        return semestre.toString();
    }
    public List<Semestre> mostrarTodoFalse()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Semestre.findByAnulado");
        qr.setParameter("anulado", false);
        List<Semestre> lista = qr.getResultList();
        return lista;
    }
    public List<Semestre> mostrarTodoTrue()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Semestre.findByAnulado");
        qr.setParameter("anulado", true);
        List<Semestre> lista = qr.getResultList();
        return lista;
    }
}
